const express = require('express');
// 创建路由对象
const router = express.Router();
// 挂载登录注册的接口

// 加载连接服务器文件
const db = require('../db.js');

// 加载utility模块   加密密码
const utility = require('utility');

// 加载jswebtoken模块
const jwt = require('jsonwebtoken');

// 登陆接口
router.post('/login',async(req,res)=>{
    // 获取用户名和密码
    // 密码加密
    req.body.password = utility.md5(req.body.password);
    let arr = [req.body.username,req.body.password];
    console.log(arr);
    // 查询数据库里是否存在当前用户名和密码
    let re = await db('select * from user where username=? and password=?',arr);
    if(re !== -1 && re.length > 0){
        //有，返回登录成功
        res.send({
            status:0,
            msg:'登录成功',
            token:'Bearer '+jwt.sign({id:re[0].id,iss:'abby'},'bj109',{expiresIn:'1day'}),
        });
    }else if(re !== -1 && re.length <= 0){
        res.send({
            status:1,
            msg:'登录失败，先注册才能登录'
        });
    }else {
        res.send({
            status:1,
            msg:'登录失败'
        });
    }
});


// 注册接口
router.post('/reguser',async(req,res)=>{
    // 获取浏览器发送过来的请求体  用户名和密码
    // req.body
    // 判断用户名是否已存在
    let look = await db('select * from user where username=?',req.body.username);
    if(look !== -1 && look.length > 0){
        // 说明该用户名已存在
        res.send({
            status:1,
            msg:'该用户名已被占用，换一个试试'
        });
        // 不让往下走
        return;
    }
    // 密码需要进行加密处理
    req.body.password = utility.md5(req.body.password);
    // 不存在的话，将用户名和密码保存到数据库，完成注册
    let re = await db('insert into user set ?',req.body);
    // console.log(re);
    if(re !== -1 && re.affectedRows > 0){
        // 注册成功
        res.send({
            status:0,
            msg:'注册成功'
        });
    }else {
        // 注册失败
        res.send({
            status:1,
            msg:'注册失败'
        });
    }
});

// 导出router对象
module.exports = router;